package com.atguigu.gmall.model.list;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Date;
import java.util.List;

/**
 * ES 建立Mapping关系
 * ES 自动化集群
 * shards Goods数据保存
 * 三台机器   保存一份在一台
 * 一主一备  一样
 *
 * 现在只有一个ES （容器）   6份
 * 一主一备  2份
 * 一主一备  2份
 * 一主一备  2份
 *
 * javaBean 映射成之前DSL语句 骨架 映射
 *
 */
@Document(indexName = "goods", type = "info", shards = 3, replicas = 2)
@Data
public class Goods {

    @Id
    private Long id;//skuId

    @Field(type = FieldType.Keyword, index = false)
    private String defaultImg;

    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String title;

    @Field(type = FieldType.Double)
    private Double price;

    @Field(type = FieldType.Date)
    private Date createTime; // 新品

    @Field(type = FieldType.Long)
    private Long tmId;//品牌ID

    @Field(type = FieldType.Keyword)
    private String tmName;//品牌名称

    @Field(type = FieldType.Long)
    private Long category1Id;

    @Field(type = FieldType.Keyword)
    private String category1Name;

    @Field(type = FieldType.Long)
    private Long category2Id;

    @Field(type = FieldType.Keyword)
    private String category2Name;

    @Field(type = FieldType.Long)
    private Long category3Id;

    @Field(type = FieldType.Keyword)
    private String category3Name;

    @Field(type = FieldType.Long)
    private Long hotScore = 0L;//热分   热度  受关注的程度   综合排序而准备的

    @Field(type = FieldType.Nested)
    private List<SearchAttr> attrs;//平台属性 及属性值

}
